package pe.edu.sistemas.sisdiho.mappers;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import pe.edu.sistemas.sisdiho.entities.User;

public interface UserScheduleMapper {
	/* No olvidar colocar --> NOMBRE_COLUMNA_TABLA as NOMBRE_CAMPO_ENTITY */
	/*@Select("select u.id_usuario as id,"
			+ "p.persona_codigo_sistema as codigo,"
			+ "p.persona_password_sistema as password,"
			+ "p.id_persona as id_persona,"
			+ "r.nombre_tipo_usuario as authority "
			+ "from USUARIO u, PERSONA p, TIPO_USUARIO r "
			+ "and u.persona_id_persona = p.id_persona " 
			+ "and u.tipo_usuario_idtipo_usuario = r.idtipo_usuario "
			+ "and u.sistema_id_sistema = 4 " 
			+ "and u.usuario_activo = 1")
	List<User> findAllUser(); // Trae todo el listado de usuarios activos del sistema siscadweb (id = 4)*/

	@Select("select u.id_usuario as id,"
			+ "p.persona_codigo_sistema as codigo,"
			+ "p.id_persona as id_persona,"
			+ "r.nombre_tipo_usuario as authority "
			+ "from USUARIO u, PERSONA p, TIPO_USUARIO r "
			+ "where u.persona_id_persona = p.id_persona " 
			+ "and u.tipo_usuario_idtipo_usuario = r.idtipo_usuario "
			+ "and u.sistema_id_sistema = 11 " //sistema sisdiho
			+ "and u.usuario_activo = 1 "
			+ "and p.persona_codigo_sistema = #{cod}")
	List<User> obtenerUsuarioxCodSistema(String cod);
	
	@Select("SELECT DISTINCT (p.id_persona) ,"
			+ " p.persona_codigo_sistema as codigo,"
			+ "p.id_persona as id_persona "
			+ "from PERSONA p,USUARIO u "
			+ "where u.sistema_id_sistema = 11 "
			+ "and u.usuario_activo = 1 "
			+ "and p.persona_codigo_sistema = #{cod} ")
	User obtenerUsuarioActual(String cod);
	
	@Select("select MD5(#{pass})")
	String MD5(String pass);
	
	/****************************AÑADIDO PARA OBTENER NOMBRE DE USUARIO****************************/
	@Select("SELECT CONCAT (p.PERSONA_APPATERNO,' ',p.PERSONA_APMATERNO,' , ',p.PERSONA_NOMBRE) "
			+ "FROM PERSONA p "
			+ "WHERE p.ID_PERSONA=#{ID_PERSONA}")
	String obtenerNombreUsuario(@Param("ID_PERSONA")int ID_PERSONA);
}
